草庐IT

c++ - RAII 和 C++ STL

全部标签

c++ - STL 中的某些容器没有查找功能

一些STL容器,例如std::list和std::vector没有find()方法作为成员函数。这是为什么?我知道可以使用std::find来自但这种用途仍然不是100%天然的。 最佳答案 一般的设计原则是尽可能使用std::find,效率更高的时候实现find成员函数。do具有find成员的容器是具有比std::find中执行的线性搜索更有效的元素查找机制的容器。例如,像std::set和std::map这样的二叉搜索树,或者像它们的unordered对应物这样的哈希表。 关于c++-

c++ - STL中的 vector 图?

我想要一个vector图,(但我不想使用指针作为内部vector),可以吗?//definemymapofvectormap>map;//insertanemptyvectorforkey10.#CompileErrormap.insert(pair>(10,vector));我知道如果我使用了vector的指针,如下,就可以了,但是我想知道我是否可以避免使用指针并使用上面的数据结构(我不想手动删除)//definemymapofvectormap*>map;//insertanemptyvectorforkey10.map.insert(pair*>(10,newvector));

c++ - STL中的 vector 图?

我想要一个vector图,(但我不想使用指针作为内部vector),可以吗?//definemymapofvectormap>map;//insertanemptyvectorforkey10.#CompileErrormap.insert(pair>(10,vector));我知道如果我使用了vector的指针,如下,就可以了,但是我想知道我是否可以避免使用指针并使用上面的数据结构(我不想手动删除)//definemymapofvectormap*>map;//insertanemptyvectorforkey10.map.insert(pair*>(10,newvector));

c++ - 如何逐个添加两个 STL vector 的元素?

这个问题很愚蠢,但我需要以一种非常有效的方式来做——它将在我的代码中一遍一遍地执行。我有一个返回vector的函数,我必须将返回的值逐个元素添加到另一个vector中。很简单:vectorresult;vectorresult_tempfor(inti=0;i我正在尝试做的数学运算是u[i]=u[i]+v[i]对于所有i可以做什么?谢谢编辑:添加了一个简单的初始化,因为这不是重点。结果应该如何初始化? 最佳答案 看起来问题确实是访问不存在的result值。tzaman展示了如何将结果初始化为10个元素,每个元素的值为0。现在您需要调

c++ - 如何逐个添加两个 STL vector 的元素?

这个问题很愚蠢,但我需要以一种非常有效的方式来做——它将在我的代码中一遍一遍地执行。我有一个返回vector的函数,我必须将返回的值逐个元素添加到另一个vector中。很简单:vectorresult;vectorresult_tempfor(inti=0;i我正在尝试做的数学运算是u[i]=u[i]+v[i]对于所有i可以做什么?谢谢编辑:添加了一个简单的初始化,因为这不是重点。结果应该如何初始化? 最佳答案 看起来问题确实是访问不存在的result值。tzaman展示了如何将结果初始化为10个元素,每个元素的值为0。现在您需要调

c++ - ctags 忽略 libc6、libstdc++ 和 boost 的列表

我在vim和OmniCppComplete中使用ctags插入。目前,在生成我的标签时,我会为每个库单独执行此操作。对于libc6,我在一个名为libc6-ignore的文件中使用以下token/宏列表,以便在处理期间忽略:__attribute____attribute_deprecated____attribute_format_arg____attribute_format_strfmon____attribute_malloc____attribute_noinline____attribute_pure____attribute_used____attribute_warn_

c++ - ctags 忽略 libc6、libstdc++ 和 boost 的列表

我在vim和OmniCppComplete中使用ctags插入。目前,在生成我的标签时,我会为每个库单独执行此操作。对于libc6,我在一个名为libc6-ignore的文件中使用以下token/宏列表,以便在处理期间忽略:__attribute____attribute_deprecated____attribute_format_arg____attribute_format_strfmon____attribute_malloc____attribute_noinline____attribute_pure____attribute_used____attribute_warn_

c++ - 轻量级C++图像库

Closed.ThisquestiondoesnotmeetStackOverflowguidelines。它当前不接受答案。想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。6年前关闭。Improvethisquestion我一直在寻找用于C++的简单,小型而又健壮和快速的(而不是全面的!)图像库(如果没有可用的C++版本,C就足够了)。我要寻找的主要功能是:免费(开源是一个加号)专为提高速度没有巨大的功能膨胀(例如ImageMagik,它确实很全面,但是是猛ma的)微小的内存占用量仅支持功能的绝对最小值,例如加载/保存,调整大小,在格式之间转换。没事儿“损坏的”

c++ - 轻量级C++图像库

Closed.ThisquestiondoesnotmeetStackOverflowguidelines。它当前不接受答案。想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。6年前关闭。Improvethisquestion我一直在寻找用于C++的简单,小型而又健壮和快速的(而不是全面的!)图像库(如果没有可用的C++版本,C就足够了)。我要寻找的主要功能是:免费(开源是一个加号)专为提高速度没有巨大的功能膨胀(例如ImageMagik,它确实很全面,但是是猛ma的)微小的内存占用量仅支持功能的绝对最小值,例如加载/保存,调整大小,在格式之间转换。没事儿“损坏的”

c++ - 尾调用优化和 RAII 可以共存吗?

我想不出真正的RAII语言在规范中也有尾调用优化,但我知道许多C++实现可以将其作为特定于实现的优化来实现。这对那些这样做的实现提出了一个问题:假设析构函数是在自动变量范围的末尾调用的,而不是由单独的垃圾收集例程调用,它是否违反了TCO的约束:递归调用必须是函数末尾的最后一条指令?例如:-#includeclasstest_object{public:test_object(){std::cout“Constructing...”将被写入999次,然后“Destructing...”又被写入999次。最终,在展开之前将自动分配999个test_object实例。但是假设一个实现有TCO